package cn.sxt.wapperclass;

/**
 * 自动拆箱和装箱
 */
public class TestAutoBox {
    public static void main(String[] args){
        //自动装箱 Integer a = Integer.valueOf(234);
        Integer a = 234;
        //自动拆箱 int b = a.intValue();
        int b = a;
        System.out.println(b);

        Integer c = null;
        if(c != null){
            int d = c;
            System.out.println(d);
        }

        //缓存[-128,127]之间的数字,在构造包装类的时候，Integer中会通过静态代码块创建一个[-128,127]的一个数组
        //当你传入的数在[-128,127]之间，包装类就会直接拿取数组中的值，所以 in1和in2两个对象是相同的
        //超过了向这个区间范围的就要重新创建对象了，所以in3和in4对象不相同
        Integer in1 = Integer.valueOf(-128);
        Integer in2 = -128;
        System.out.println(in1 == in2);
        System.out.println(in1.equals(in2));
        System.out.println("*******************");
        Integer in3 = Integer.valueOf(235);
        Integer in4 = 235;
        System.out.println(in3 == in4);
        System.out.println(in3.equals(in4));
    }
}
